package weekMatch.one_344;

import java.util.HashMap;
import java.util.Map;

class FrequencyTracker {
    Map<Integer, Integer> map1 = new HashMap<>();
    Map<Integer, Integer> map2 = new HashMap<>();

    public FrequencyTracker() {

    }

    public void add(int number) {
        if (map1.containsKey(number)) {
            int pre = map1.get(number);
            map1.put(number, pre + 1);
            map2.put(pre, map2.get(pre) - 1);
            map2.put(pre + 1, map2.getOrDefault(pre + 1, 0) + 1);
        } else {
            map1.put(number, 1);
            map2.put(1, map2.getOrDefault(1, 0) + 1);
        }
    }

    public void deleteOne(int number) {
        if (map1.containsKey(number) && map1.get(number) > 0) {
            Integer pre = map1.get(number);
            map2.put(pre, map2.get(pre) - 1);
            map1.put(number, pre - 1);
            map2.put(pre - 1, map2.getOrDefault(pre - 1, 0) + 1);
        }
    }

    public boolean hasFrequency(int frequency) {
        return map2.containsKey(frequency) && map2.get(frequency) > 0;
    }
}
